package com.cskaoyan._02basic;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/2 16:07
 **/

/*
案例2：使用递归计算N（N>=1）的阶乘**（factorial）**
n!=1 x 2 x3,,,,xn

n! = n * (n-1)!
(n-1)! = (n-1) x (n-2)!
.....
2! = 2 x 1
1! = 1

 */
public class Demo2 {
    public static void main(String[] args) {
        int result = getFactorial(5);
        System.out.println("result = " + result);
    }

    // 使用递归进行计算n!
    public static int getFactorial(int n) {
        // 递归出口
        if (n == 1) {
            return 1;
        }

        // 递归体
        //n! = n * (n-1)!
        return n * getFactorial(n - 1);
    }
}
